package com.sky.skyopsserver.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 通知方式枚举
 * 
 * @author Administrator
 * @since 2025-01-17
 */
@Getter
@AllArgsConstructor
public enum NotificationTypeEnum {
    
    /**
     * 邮箱通知
     */
    EMAIL("email", "邮箱通知"),
    
    /**
     * 钉钉通知
     */
    DING("ding", "钉钉通知"),
    
    /**
     * 微信通知
     */
    WECHAT("wechat", "微信通知"),
    
    /**
     * 邮箱+钉钉
     */
    EMAIL_DING("email_ding", "邮箱+钉钉"),
    
    /**
     * 邮箱+微信
     */
    EMAIL_WECHAT("email_wechat", "邮箱+微信"),
    
    /**
     * 钉钉+微信
     */
    DING_WECHAT("ding_wechat", "钉钉+微信"),
    
    /**
     * 全部通知方式
     */
    ALL("all", "全部通知方式");
    
    /**
     * 类型值
     */
    private final String type;
    
    /**
     * 类型描述
     */
    private final String description;
    
    /**
     * 根据类型值获取枚举
     * 
     * @param type 类型值
     * @return 枚举
     */
    public static NotificationTypeEnum getByType(String type) {
        if (type == null) {
            return null;
        }
        for (NotificationTypeEnum notificationType : values()) {
            if (notificationType.getType().equals(type)) {
                return notificationType;
            }
        }
        return null;
    }
    
    /**
     * 验证类型是否有效
     * 
     * @param type 类型值
     * @return 是否有效
     */
    public static boolean isValid(String type) {
        return getByType(type) != null;
    }
}